package org.jsola.hr.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.vo.BaseTreeVO;

import java.util.Date;
import java.util.List;

import static org.jsola.core.example.BaseExample.E_GMT_CREATE;
import static org.jsola.core.example.BaseExample.E_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.E_ID;
import static org.jsola.core.example.BaseExample.N_GMT_CREATE;
import static org.jsola.core.example.BaseExample.N_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.N_ID;
import static org.jsola.hr.example.InstitutionTypeExample.E_INSTITUTION_TYPE_INTRODUCE;
import static org.jsola.hr.example.InstitutionTypeExample.E_INSTITUTION_TYPE_NAME;
import static org.jsola.hr.example.InstitutionTypeExample.E_LEVEL;
import static org.jsola.hr.example.InstitutionTypeExample.E_PARENT_ID;
import static org.jsola.hr.example.InstitutionTypeExample.E_SORT;
import static org.jsola.hr.example.InstitutionTypeExample.N_INSTITUTION_TYPE_INTRODUCE;
import static org.jsola.hr.example.InstitutionTypeExample.N_INSTITUTION_TYPE_NAME;
import static org.jsola.hr.example.InstitutionTypeExample.N_LEVEL;
import static org.jsola.hr.example.InstitutionTypeExample.N_PARENT_ID;
import static org.jsola.hr.example.InstitutionTypeExample.N_SORT;

/**
 * 制度分类
 *
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "【制度分类】列表展示对象")
@Data
public class InstitutionTypeListVO extends BaseTreeVO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_ID, example = E_ID)
    private String id;

    @ApiModelProperty(notes = N_INSTITUTION_TYPE_NAME, example = E_INSTITUTION_TYPE_NAME)
    private String institutionTypeName;

    @ApiModelProperty(notes = N_INSTITUTION_TYPE_INTRODUCE, example = E_INSTITUTION_TYPE_INTRODUCE)
    private String institutionTypeIntroduce;

    @ApiModelProperty(notes = N_PARENT_ID, example = E_PARENT_ID)
    private String parentId;

    @ApiModelProperty(notes = N_SORT, example = E_SORT)
    private Long sort;

    @ApiModelProperty(notes = N_LEVEL, example = E_LEVEL)
    private Integer level;

    @ApiModelProperty(notes = N_GMT_CREATE, example = E_GMT_CREATE)
    private Date gmtCreate;

    @ApiModelProperty(notes = N_GMT_MODIFIED, example = E_GMT_MODIFIED)
    private Date gmtModified;

    @ApiModelProperty(notes = "是否具备制度")
    private Boolean hadInstitution;

    @ApiModelProperty(notes = "制度分类下的制度")
    private List<InstitutionVO> institutionVOList;


}

